package com.example.myFirstWebmagic.schedule;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import com.example.myFirstWebmagic.aspect.LogTag;
import com.example.myFirstWebmagic.dailyAirReport.service.WebmagicService;

/**
 * 
 * ClassName: SchedulingConfig 
 * @Description: 定时任务配置类
 * @author xiongyao
 * @date 2017年3月3日
 */
@Configuration
@EnableScheduling // 启用定时任务
public class SchedulingConfig {

	@Autowired
	private SchedulingSwitchRepository schedulingSwitchRepository;
	
	@Autowired
	private WebmagicService webmagicService;
	
	
	/**
	 * 
	 * @Description: 空气质量日报调度定时
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月5日
	 */
	@LogTag
	@Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次
    public void airDailyReportscheduler() {
        EnSchedulingSwitch daySchedulingSwitch= schedulingSwitchRepository.findByScheduleName("AirDailyReportscheduler");
        if(null!=daySchedulingSwitch&&daySchedulingSwitch.getSswitch().equals("ON")){
        	webmagicService.airDailyReportStart("");
        }
        
    }
	
	/**
	 * 
	 * @Description: 空气质量小时报调度定时
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月5日
	 */
	@LogTag
	@Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次
    public void airHourReportscheduler() {
        EnSchedulingSwitch hourSchedulingSwitch= schedulingSwitchRepository.findByScheduleName("AirHourReportscheduler");
        if(null!=hourSchedulingSwitch&&hourSchedulingSwitch.getSswitch().equals("ON")){
        	webmagicService.airHourReportStart("");
        }
    }

	/**
	 * 
	 * @Description: 水质监测
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月8日
	 */
	@LogTag
	@Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次
    public void waterReportScheduler() {
        EnSchedulingSwitch hourSchedulingSwitch= schedulingSwitchRepository.findByScheduleName("WaterReportscheduler");
        if(null!=hourSchedulingSwitch&&hourSchedulingSwitch.getSswitch().equals("ON")){
        	webmagicService.waterReportStart();
        }
    }

	/**
	 * 
	 * @Description: 城市空气质量预报
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月13日
	 */
	@LogTag
	@Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次
	public void aqiForecastScheduler(){
		EnSchedulingSwitch hourSchedulingSwitch= schedulingSwitchRepository.findByScheduleName("aqiForecast");
	    if(null!=hourSchedulingSwitch&&hourSchedulingSwitch.getSswitch().equals("ON")){
	    	webmagicService.aqiForecastStart();
	    }
	}
	
	/**
	 * 
	 * @Description: 全国及区域空气质量形势预报
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月13日
	 */
	@LogTag
	@Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次
	public void areaAqiForecastScheduler(){
		EnSchedulingSwitch hourSchedulingSwitch= schedulingSwitchRepository.findByScheduleName("areaAqiForecast");
	    if(null!=hourSchedulingSwitch&&hourSchedulingSwitch.getSswitch().equals("ON")){
	    	webmagicService.areaAqiForecastStart();
	    }
	}
	
	/**
	 * 
	 * @Description: 省份空气质量形势预报
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月13日
	 */
	@LogTag
	@Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次
	public void provinceAqiForecastScheduler(){
		EnSchedulingSwitch hourSchedulingSwitch= schedulingSwitchRepository.findByScheduleName("provinceAqiForecast");
	    if(null!=hourSchedulingSwitch&&hourSchedulingSwitch.getSswitch().equals("ON")){
	    	webmagicService.provinceAqiForecastStart();
	    }
	}
	
	/**
	 * 
	 * @Description: 企业监测信息
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年4月4日
	 */
	@LogTag
	@Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次
	public void companyInfoScheduler(){
		EnSchedulingSwitch hourSchedulingSwitch= schedulingSwitchRepository.findByScheduleName("companyInfo");
	    if(null!=hourSchedulingSwitch&&hourSchedulingSwitch.getSswitch().equals("ON")){
	    	webmagicService.companyInfo();
	    }
	}
	
	
	/**
	 * 
	 * @Description: 企业年度监测报告
	 * @param    
	 * @return void  
	 * @throws
	 * @author xiongyao
	 * @date 2017年4月4日
	 */
	@LogTag
	@Scheduled(cron = "0 0 0 0/1 * ?") // 每天执行一次
	public void companyBgScheduler(){
		EnSchedulingSwitch hourSchedulingSwitch= schedulingSwitchRepository.findByScheduleName("companyBg");
	    if(null!=hourSchedulingSwitch&&hourSchedulingSwitch.getSswitch().equals("ON")){
	    	webmagicService.companyBg();
	    }
	}
}
